package com.kamaro.dao.implementacao;

import com.kamaro.dao.HibernateSessionFactory;
import com.kamaro.dao.ProdutoDAO;
import com.kamaro.model.Produto;
import org.hibernate.Session;

import java.util.List;

public class HibernateProdutoDAO implements ProdutoDAO {
    @Override
    public Produto findById(Long id) {
        Session session = new HibernateSessionFactory().getSession();
        return (Produto) session.get(Produto.class, id);

    }

    @Override
    public void save(Produto p) {
        Session session = new HibernateSessionFactory().getSession();
        session.beginTransaction();
        session.save(p);
        session.getTransaction().commit();
    }


    @Override
    public void delete(Produto p) {

    Session session = new HibernateSessionFactory().getSession();
    session.beginTransaction();
    session.delete(p);
    session.getTransaction().commit();

    }

    @Override
    public List<Produto> listarProduto() {
       Session session = new HibernateSessionFactory().getSession();
       return session.createQuery("from Produto p order by p.nome ").list();

    }
    public void update(Produto p){
        Session session = new HibernateSessionFactory().getSession();
        session.beginTransaction();
        session.update(p);

        session.getTransaction().commit();

    }
}
